//package com.quanshi.accountmanager.controller;
//
//import com.quanshi.accountmanager.utils.AliyunOSSUtil;
//import com.quanshi.accountmanager.utils.GetTime;
//import com.quanshi.common.core.domain.AjaxResult;
//import com.quanshi.common.core.redis.RedisCache;
//import lombok.extern.log4j.Log4j2;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.RestController;
//import org.springframework.web.multipart.MultipartFile;
//
//import java.io.File;
//import java.io.InputStream;
//import java.util.*;
//
//import javax.annotation.Resource;
//
///**
// * @author zhangShanLai
// * @description: 文件管理接口  提供各种形式上传，下载，删除等操作
// * @datetime: 2023-02-28 16:25
// */
//@Log4j2
//@RestController
//@RequestMapping("/ar/file")
//public class FileManagerController {
//
//    @Resource
//    private AliyunOSSConfig ossConfig;
//
//    /**
//     * 上传图片并返回上传后的URL地址
//     *
//     * @param file
//     */
//    @PostMapping("/uploadALiYun")
//    public AjaxResult uploadALiYun(@RequestParam("file") MultipartFile file){
//
//        // 路径拼接
//        String dataPath = GetTime.getDate(new Date(), GetTime.TIME_TIME_STRING);
//        // 文件名称生成
//        String uuid = UUID.randomUUID().toString().replace("-", "");
//        String name = file.getOriginalFilename();
//
//        String fileNameWithoutExtension = "";
//        String fileExtension = "";
//
//        //获取文件扩展名
//        if (name != null) {
//            int dotIndex = name.lastIndexOf(".");
//            if (dotIndex >= 0 && dotIndex < name.length() - 1) {
//                fileNameWithoutExtension = name.substring(0, dotIndex);
//                fileExtension = name.substring(dotIndex + 1);
//            }
//        }
//        String path = "";
//        if ("jpg".equals(fileExtension) || "png".equals(fileExtension) || "jpeg".equals(fileExtension)) {
//            path = "image_";
//        }else {
//            return AjaxResult.faild(ReturnCode.Not_File_Format,"文件名错误，文件格式必须是 jpg | png | jpeg 格式", null);
//        }
//        String filesName = path + fileNameWithoutExtension + "_" + dataPath + "_" + uuid + "." + fileExtension;
//
//        Map<String, Object> data = new HashMap<>();
//        data.put("url", filesName);
//
//        try (InputStream inputStream = file.getInputStream()) {
//            if(new AliyunOSSUtil().uploadALiYun(ossConfig.getEndpoint(), ossConfig.getAccessKeyId(), ossConfig.getAccessKeySecret(), ossConfig.getBucketName(), inputStream, filesName)){
//                return AjaxResult.success("文件上传成功", data);
//            }
//        } catch (Exception e) {
//            // 处理异常情况
//            log.info("文件上传失败",e);
//            //返回R对象
//            return AjaxResult.faild(ReturnCode.Not_File,"文件上传失败", null);
//        }
//        //返回R对象
//        return AjaxResult.faild(ReturnCode.Not_File,"文件上传失败", null);
//    }
//
//
//    /**
//     * 上传图片并返回上传后的URL地址
//     *
//     * @param fileName 文件名
//     */
//    @GetMapping("/aLiYunRemove")
//    public AjaxResult aLiYunRemove(String fileName){
//
//        String fileExtension = "";
//        //获取文件扩展名
//        if (fileName != null) {
//            int dotIndex = fileName.lastIndexOf(".");
//            if (dotIndex >= 0 && dotIndex < fileName.length() - 1) {
//                fileExtension = fileName.substring(dotIndex + 1);
//            }
//        }
//        if (!"jpg".equals(fileExtension) && !"png".equals(fileExtension) && !"jpeg".equals(fileExtension))
//            return AjaxResult.faild(ReturnCode.Not_File_Format,"文件名错误，文件格式必须是 jpg | png | jpeg 格式", null);
//
//        if (new AliyunOSSUtil().aLiYunRemove(ossConfig.getEndpoint(),ossConfig.getAccessKeyId(),ossConfig.getAccessKeySecret(), ossConfig.getBucketName(),fileName)) {
//            return AjaxResult.success("文件删除成功",fileName);
//        }
//
//        return AjaxResult.faild(ReturnCode.Not_File,"文件上传失败", null);
//    }
//}
